Businesses employ networks to interconnect their computers, servers, storage devices, and other network elements. As a business grows, so can its network, increasing the number of network elements coupled to the network, the number of network links, and also geographic diversity. A business' network elements can be scattered throughout a city, a state, a country, or the world. Since it can be prohibitively expensive to create a private network that spans great distances, many businesses opt to rely upon a third-party provider's network to provide connectivity between network elements at disparate geographic sites. In order for the business' network to seamlessly function through the provider's network, the provider's network must be able to provide a medium for transmission of various types of data-streams, including multicast data-stream transmission.
Multicast enables simultaneous transmission of data packets between a source and select receivers (i.e., those receivers belonging to a multicast group identified by a multicast group IP address). In packet-switched networks, multicast data packets are forwarded to receivers of a group through a multicast distribution tree that consists of number of network nodes. The nodes in a packet-switched network forward multicast data packets based on information (e.g., the source and/or group IP addresses) contained in the packets. For purposes of explanation only, the term node will mean a router or a device that functions as a router, it being understood that the term node should not be limited thereto. Routers of the tree are responsible for replicating multicast data packets at each bifurcation point (the point of the tree where branches fork). This means that only one copy of the multicast data packets travel over any particular link in the network, making multicast distribution trees extremely efficient for distributing the same information to many receivers.
Multiprotocol Label Switching (MPLS) is one network technology often employed by provider networks. In operation, ingress edge label switch routers (LSRs) of MPLS networks assign labels to incoming data packets. Labels are short, fixed length, locally significant identifiers which are used to identify a Forwarding Equivalence Class (FEC). Packets that share the same requirement for transport across an MPLS network share the same FEC. Thus, packets belonging to the same FEC (e.g., multicast data packets with the same source and group IP addresses) will generally follow the same path through the MPLS network. When assigning a packet to an FEC, the ingress edge LSR may look at the IP header of the packet and also some other information such as the interface on which the packet arrived, to determine the appropriate FEC and thus the appropriate label to assign to the incoming data packet.
Labeled packets are forwarded along a label switch path (LSP) that may include one or more other LSRs in the MPLS network. The LSRs of the LSP decide which way to forward an incoming packet based on the packet's incoming label. More particularly, LSRs use label information base (LIB) tables that map incoming labels of incoming packets to outgoing labels of outgoing packets and outgoing interfaces. When an LSR receives an incoming packet, the LSR typically uses its LIB table to map the incoming label of the incoming packet to an outgoing label. The LSR then swaps the incoming label with the mapped outgoing packet label, which tells the next LSR in the LSP how to forward the data packet. The LSR outputs the packet to the next LSR in the LSP out of an interface that is also identified in the LIB. MPLS allows LSRs to make simple forwarding decisions based on the contents of a simple label, rather than making a complex forwarding decision based on IP addresses.
LSPs come in several forms including: point-to-point (P2P) LSPs in which labeled packets are transmitted from one ingress LSR to one egress LSR, and; point-to-multipoint (P2MP) LSPs in which labeled packets are transmitted from one ingress LSR to multiple egress LSRs. P2MP LSPs can be used to transmit multicast data packets from a source on one side of the MPLS network to multiple receivers on the other side of the MPLS network. Branching LSRs in P2MP LSPs replicate packets as needed and forward the original and replicated packets to the next LSRs.
LSPs are provisioned using Label Distribution Protocols (LDPs). LDP lets an LSR distribute labels to its LDP peers. When an LSR assigns a label to an FEC it informs its relevant peers of this label and its meaning, and LDP is used for this purpose. Since a set of labels from an ingress edge LSR to an egress edge LSR in an MPLS network defines an LSP, LDP helps in establishing a LSP by using a set of procedures to distribute the labels among the LSR peers. U.S. patent application Ser. No. 11/267,674 describes an in-band multicast LDP (mLDP) technique that can be used to establish a P2MP LSP through an MPLS network. These P2MP LSPs within a MPLS network can be used to “connect” multicast group receivers on one side of an MPLS network to a source on the other side of the MPLS network, so that multicast packets transmitted by the source can reach the receivers notwithstanding an intervening third-party provider MPLS network.
The invention described in U.S. patent application Ser. No. 11/267,674 works quite well if all LSRs, including core LSRs, are mLDP enabled. However, problems can arise in MPLS networks which contain LSRs which are not mLDP enabled.